package cn.fscode.code.generator.service;

import cn.fscode.code.generator.model.po.TemplateConfigPO;
import cn.fscode.code.generator.model.req.CopyTemplateReq;
import cn.fscode.code.generator.model.req.TemplateConfigReq;
import cn.fscode.code.generator.model.req.TemplateQueryReq;
import cn.fscode.code.generator.model.resp.TemplateConfigResp;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * @author shenguangyang
 */
public interface TemplateConfigService {
    List<TemplateConfigPO> listByIds(List<Long> idList);

    TemplateConfigPO getById(Long id);

    List<TemplateConfigPO> listAll();

    boolean save(TemplateConfigReq req);

    void updateById(TemplateConfigReq req);

    void deleteById(TemplateConfigPO templateConfigPO);

    List<TemplateConfigResp> listByGroupId(Long groupId);

    /**
     * 复制模板
     */
    void copyById(CopyTemplateReq req);

    IPage<TemplateConfigPO> page(TemplateQueryReq req);

    void deleteBatchByIds(List<Long> ids);

    List<TemplateConfigPO> list(TemplateQueryReq req);

    /**
     * 导入模板数据
     *
     * @param list 数据列表
     * @param updateSupport 是否更新支持，如果已存在，则进行更新数据
     * @return 结果
     */
    String importExcel(List<TemplateConfigPO> list, Long groupId, boolean updateSupport);
}
